Human API 是一個讓使用者可以安全的跟開發者交換個人健康資訊的平台。
基本上,Human API 所在做的事情是把各式各樣的第三方健康資料來源整合在一起,這樣開發者就不需要在各種健康API 裡翻找自己想要的資料,煩惱於某個第三方 API 提供的資料不齊全,接太多個 API 重複資料又太累贅。
今天就來瞭解一下這個 API。
Human API 的教學還挺詳細的,也提供各種不同的工具 。除了拿到資料的 Data API,有幫助管理
APP 的 Application API、呈現圖表的 Chart API、協助 authentication 流程的 Human Connect 等。
在 Data Network 這邊,Human API 列出了所有他們整合的第三方健康 APP 的資訊,裡面有各種 APP 能夠提供的不同資料種類的比較、也有列出那些資料分別是來自哪些 API endpoint。
在 Developer Portal 這邊,Human API 提供了蠻詳細的教學。首先先分享一些註冊流程:
再來就是運用 Human Connect 來進行 Authentication 的步驟。
不幸的是我還沒研究怎麼使用 Node.js 跟弄個簡單的後端,所以沒有跟著教學走。
在進行完 authentication 的步驟之後,就到 API Reference 這邊來看看有哪些資料可以拿。
文件裡面把 Data API resource 分成兩種:
這兩種 API 的運作方式是一模一樣的,主要的差異在於兩者的資料來源不同。Medical API 的資料來源主要是診所或是醫療服務的提供者,他們在經過使用者的同意之下(應該啦)同意 Human API 經手這些資料,得到的會是關於過敏、用藥歷史、保險方案、手術方案等比較專業的醫療相關資料。而 Wellness API 則是透過整合第三方健康 APP 、穿戴式科技或一些能連上網的醫療器材得到的。拿到的資料會是身體活動種類時間等、睡眠時間、身高體重、血壓、飲食記錄等。
最後有個 Utility API 則是提供一些整理這些資料來源跟不同來源的使用者的工具。
在實作之前,由於我並沒有任何使用者資料、也因為沒有後端,所以沒有辦法完成 authentication 的流程。為了實驗跟深入了解這個 API 服務,Human API 有提供一個 Demo Data。要使用這個 Demo Data,就是使 request URL 裡的 access_token=demo
,所以一個 request URL 是這樣的:
'GET',"https://api.humanapi.co/v1/human?access_token=demo"
(這邊使用的是 Wellness API 的 Human endpoint,會回傳關於特定使用者的概括總結。)
另外來必須設定一個 Authorization:Bearer demo
的 request header。
xhr.setRequestHeader("Authorization","Bearer demo")
現在使用以下 code 來試試看會得到什麼 response:
var url = "https://api.humanapi.co/v1/human?access_token=demo";
function makeRequest() {
xhr = new XMLHttpRequest();
xhr.onload = function() {
var response = JSON.parse(this.responseText);
console.log(response);
};
xhr.open("GET", url, true);
xhr.setRequestHeader("Authorization", "Bearer demo");
xhr.send();
}
makeRequest();
來做個簡單的 Profile 頁面呈現這些資料: